import java.util.HashMap;
import java.util.Map;

public class Solution1711 {

    private static final int mod = 1000000007;

    public int countPairs(int[] deliciousness) {
        Map<Integer,Integer> map=new HashMap<>();
        for (int i : deliciousness) {
            map.put(i,map.getOrDefault(i,0)+1);
        }
        long ans=0;
        for (Integer integer : map.keySet()) {
            for (int i=0;i<=21;i++){
                if (integer==(1<<i)-integer) {
                    long temp = map.get(integer);
                    ans = ans + temp * (temp - 1);
                }else {
                    ans = ans + map.get(integer) * map.getOrDefault((1 << i) - integer, 0);
                }
            }
        }
        return (int)((ans/2)%mod);
    }

    public static void main(String[] args) {
        System.out.println(new Solution1711().countPairs(new int[]{32,32,32,32}));
    }
}
